package com.jeffse.light.stream.core.data.context;

import com.jeffse.light.stream.core.data.descriptor.stateDescriptor.ListStateDescriptor;
import com.jeffse.light.stream.core.data.descriptor.stateDescriptor.MapStateDescriptor;
import com.jeffse.light.stream.core.data.descriptor.stateDescriptor.ValueStateDescriptor;
import com.jeffse.light.stream.core.data.state.ListState;
import com.jeffse.light.stream.core.data.state.MapState;
import com.jeffse.light.stream.core.data.state.ValueState;

public class StreamingRuntimeContext implements RuntimeContext {


    @Override
    public <V, T> ValueState<V> getState(ValueStateDescriptor<T> stateProperties) {
        return new ValueState<>(stateProperties);
    }

    @Override
    public <V, T> ListState<V> getListState(ListStateDescriptor<T> stateProperties) {
        return new ListState<>(stateProperties);
    }

    @Override
    public <KEY, V, T> MapState<KEY, V> getMapState(MapStateDescriptor<T> stateProperties) {
        return new MapState<>(stateProperties);
    }
}
